/*
* @Author: tianhc
* @Date:   2017-09-01 15:02:01
* @Last Modified by:   ludynice
* @Last Modified time: 2017-09-24 23:54:08
*/
 var webpack = require('webpack');
 var ExtractTextPlugin   = require('extract-text-webpack-plugin');
 var HtmlWebpackPlugin   = require('html-webpack-plugin');
 var WEBPACK_ENV = process.env.WEBPACK_ENV || 'dev';
 var getHtmlConfig = function(name, title){
        return {
                // template : 'html-withimg-loader!'+'./src/view/'+ name +'.html',
                template : './src/view/'+ name +'.html',
                filename : 'view/'+ name +'.html',
                title : title,
                inject : true,
                hash : true,
                chunks : ['common', name]
        };
 }

 var config = {
     entry : {
         'common':['./src/page/common/index.js'],   
         'index':['./src/page/index/index.js'],   
         'user-login':['./src/page/user-login/index.js'],   
         'result':['./src/page/result/index.js'],   
     },
     output : {
         path: './dist',
         publicPath : '/dist',
         filename: 'js/[name].js'
     },
     externals : {
        'jquery' : 'window.jQuery'
     },
     module: {
        loaders: [
          //单独打包css
          { test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader","css-loader") },
          //资源文件处理
          { test: /\.(gif|png|jpg|woff|svg|eot|ttf)\??.*$/, loader: 'url-loader?limit=100&name=resource/[name].[ext]' },
          //模板文件处理
          {
                test: /\.string$/, 
                loader: 'html-loader',
                query : {
                    minimize : true,
                    removeAttributeQuotes : false
                }
          },
          //处理html中的图片，例如<img src='....'/>,这里有个问题： 这个loader怎么和html-webpack-plugin一起用，要不图片抽不出来？？？！！！
          /*{
　　　　　　test: /\.html$/,
　　　　　　loader: 'html-withimg-loader'
　　　　  }*/
        ]
     },
     //项目路径的别名简写，只能在.js文件中使用
     resolve : {
        alias : {
            node_modules : __dirname + '/node_modules',
            util : __dirname + '/src/util',
            page : __dirname + '/src/page',
            service : __dirname + '/src/service',
            image : __dirname + '/src/image',
        }
     },
     plugins : [
        //公共代码抽取
        new webpack.optimize.CommonsChunkPlugin({
            name : 'common',
            filename : 'js/base.js'
        }),
        new ExtractTextPlugin("css/[name].css"),
        new HtmlWebpackPlugin(getHtmlConfig('index','首页')),
        new HtmlWebpackPlugin(getHtmlConfig('user-login','用户登录页')),
        new HtmlWebpackPlugin(getHtmlConfig('result','操作结果')),
     ]
 };
//区分开发还是生产环境，更好的做法应该是不同的开发环境准备不同的webpack.config.js配置文件，使用脚本在区分运行
if('dev' === WEBPACK_ENV){
    config.entry.common.push('webpack-dev-server/client?http://localhost:8088/');
}

module.exports = config;